home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Freeware / Gobby 0.4.7 / gobby-0.4.7.exe / {app} / share / gtksourceview-2.0 / language-specs / sql.lang < prev    next >
Extensible Markup Language  |  2008-09-09  |  23KB  |  618 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3.  
  4.  Author: Evert Verhellen <evert.verhellen@advalvas.be>
  5.  Copyright (C) 2003, 2005 Evert Verhellen <evert.verhellen@advalvas.be>
  6.  
  7.  This library is free software; you can redistribute it and/or
  8.  modify it under the terms of the GNU Library General Public
  9.  License as published by the Free Software Foundation; either
  10.  version 2 of the License, or (at your option) any later version.
  11.  
  12.  This library is distributed in the hope that it will be useful,
  13.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  Library General Public License for more details.
  16.  
  17.  You should have received a copy of the GNU Library General Public
  18.  License along with this library; if not, write to the
  19.  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  20.  Boston, MA 02111-1307, USA.
  21.  
  22. -->
  23. <language id="sql" _name="SQL" version="2.0" _section="Sources">
  24.   <metadata>
  25.     <property name="mimetypes">text/x-sql</property>
  26.     <property name="globs">*.sql</property>
  27.     <property name="line-comment-start">--</property>
  28.   </metadata>
  29.  
  30.   <styles>
  31.     <style id="comment" _name="Comment" map-to="def:comment"/>
  32.     <style id="floating-point" _name="Floating Point" map-to="def:floating-point"/>
  33.     <style id="string" _name="String" map-to="def:string"/>
  34.     <style id="keyword" _name="Keyword" map-to="def:keyword"/>
  35.     <style id="function" _name="Function" map-to="def:function"/>
  36.     <style id="decimal" _name="Decimal" map-to="def:decimal"/>
  37.     <style id="type" _name="Data Type" map-to="def:type"/>
  38.     <style id="some-thing" _name="No idea what it is" map-to="def:preprocessor"/>
  39.   </styles>
  40.  
  41.   <default-regex-options case-sensitive="false"/>
  42.  
  43.   <definitions>
  44.  
  45.     <context id="oracle-built-in-datatypes" style-ref="type">
  46.       <keyword>N?VARCHAR2</keyword>
  47.       <keyword>NUMBER</keyword>
  48.       <keyword>LONG</keyword>
  49.       <keyword>DATE</keyword>
  50.       <keyword>TIMESTAMP</keyword>
  51.       <keyword>INTERVAL</keyword>
  52.       <!-- FIXME no \n in patterns! -->
  53.       <keyword>(LONG[ \t\n]+)?RAW</keyword>
  54.       <keyword>U?ROWID</keyword>
  55.       <keyword>N?CHAR</keyword>
  56.       <keyword>(N?C|B)LOB</keyword>
  57.       <keyword>BFILE</keyword>
  58.       <keyword>BINARY_(FLOAT|DOUBLE)</keyword>
  59.     </context>
  60.  
  61.     <context id="ansi-datatypes" style-ref="type">
  62.       <!-- FIXME no \n in patterns! -->
  63.       <keyword>(NATIONAL[ \t\n]+)?CHAR(ACTER)?([ \t\n]+VARYING)?</keyword>
  64.       <!-- FIXME no \n in patterns! -->
  65.       <keyword>NCHAR([ \t\n]+VARYING)?</keyword>
  66.       <keyword>NUMERIC|DECIMAL</keyword>
  67.       <keyword>INTEGER|INT|SMALLINT</keyword>
  68.       <!-- FIXME no \n in patterns! -->
  69.       <keyword>FLOAT|DOUBLE[ \t\n]+PRECISION|REAL</keyword>
  70.     </context>
  71.  
  72.     <context id="sql-ds-and-db2-datatypes" style-ref="type">
  73.       <keyword>CHARACTER</keyword>
  74.       <!-- FIXME no \n in patterns! -->
  75.       <keyword>(LONG[ \t\n]+)?VARCHAR</keyword>
  76.       <keyword>DECIMAL</keyword>
  77.       <keyword>INTEGER|SMALLINT</keyword>
  78.       <keyword>FLOAT</keyword>
  79.     </context>
  80.  
  81.     <context id="oracle-supplied-types" style-ref="type">
  82.       <keyword>SYS\.ANY(TYPE|DATA(SET)?)</keyword>
  83.       <keyword>XMLType</keyword>
  84.       <keyword>(HTTP|XDB|DB)?URIType</keyword>
  85.       <keyword>(MDSYS\.)?SDO_((TOPO_)?GEOMETRY|GEORASTER)</keyword>
  86.       <keyword>ORDSYS\.ORD(Audio|Doc|Image(Signature)?|Video)</keyword>
  87.       <keyword>SI_(StillImage|(Average|Positional)?Color|ColorHistogram|Texture|FeatureList)</keyword>
  88.     </context>
  89.  
  90.     <context id="text-literals" style-ref="string">
  91.       <start>[NnQqUu]?(['`])</start>
  92.       <end>\%{1@start}</end>
  93.       <include>
  94.         <context ref="def:escape"/>
  95.         <context ref="def:line-continue"/>
  96.       </include>
  97.     </context>
  98.  
  99.     <context id="integer-literals" style-ref="decimal">
  100.       <match>\b[0-9]+\b</match>
  101.     </context>
  102.  
  103.     <context id="number-literals" style-ref="floating-point">
  104.       <match>(\b[0-9]+(\.[0-9]+)?|\.[0-9]+)([Ee][\+-]?[0-9]+)?\b</match>
  105.     </context>
  106.  
  107.     <context id="size-clause" style-ref="decimal">
  108.       <match>\b[0-9]+[ \t]*([Kk]|[Mm]|[Gg]|[Tt])\b</match>
  109.     </context>
  110.  
  111.     <context id="unlimited" style-ref="decimal">
  112.       <keyword>UNLIMITED</keyword>
  113.     </context>
  114.  
  115.     <context id="null" style-ref="decimal">
  116.       <keyword>NULL</keyword>
  117.     </context>
  118.  
  119.     <context id="block-comment" style-ref="comment">
  120.       <start>/\*</start>
  121.       <end>\*/</end>
  122.       <include>
  123.         <context ref="def:in-line-comment"/>
  124.       </include>
  125.     </context>
  126.  
  127.     <context id="line-comment" style-ref="comment" end-at-line-end="true">
  128.       <start>--</start>
  129.       <include>
  130.         <context ref="def:in-line-comment"/>
  131.       </include>
  132.     </context>
  133.  
  134.     <context id="numeric-functions" style-ref="function">
  135.       <keyword>ABS</keyword>
  136.       <keyword>A(COS|SIN|TAN2?)</keyword>
  137.       <keyword>BITAND</keyword>
  138.       <keyword>CEIL</keyword>
  139.       <keyword>(COS|SIN|TAN)H?</keyword>
  140.       <keyword>EXP</keyword>
  141.       <keyword>FLOOR</keyword>
  142.       <keyword>LN</keyword>
  143.       <keyword>LOG</keyword>
  144.       <keyword>MOD</keyword>
  145.       <keyword>NANVL</keyword>
  146.       <keyword>POWER</keyword>
  147.       <keyword>REMAINDER</keyword>
  148.       <keyword>ROUND</keyword>
  149.       <keyword>SIGN</keyword>
  150.       <keyword>SQRT</keyword>
  151.       <keyword>TRUNC</keyword>
  152.       <keyword>WIDTH_BUCKET</keyword>
  153.     </context>
  154.  
  155.     <context id="character-functions-returning-character-values" style-ref="function">
  156.       <keyword>N?CHR</keyword>
  157.       <keyword>CONCAT</keyword>
  158.       <keyword>(NLS_)?(INITCAP|LOWER|UPPER)</keyword>
  159.       <keyword>(L|R)PAD</keyword>
  160.       <keyword>(L|R)?TRIM</keyword>
  161.       <keyword>NLSSORT</keyword>
  162.       <keyword>REGEXP_(REPLACE|SUBSTR)</keyword>
  163.       <keyword>REPLACE</keyword>
  164.       <keyword>SOUNDEX</keyword>
  165.       <keyword>SUBSTR</keyword>
  166.       <keyword>TRANSLATE</keyword>
  167.       <keyword>TREAT</keyword>
  168.     </context>
  169.  
  170.     <context id="nls-character-functions" style-ref="function">
  171.       <keyword>NLS_CHARSET_DECL_LEN</keyword>
  172.       <keyword>NLS_CHARSET_(ID|NAME)</keyword>
  173.     </context>
  174.  
  175.     <context id="character-functions-returning-number-values" style-ref="function">
  176.       <keyword>ASCII</keyword>
  177.       <keyword>INSTR</keyword>
  178.       <keyword>LENGTH</keyword>
  179.       <keyword>REGEXP_INSTR</keyword>
  180.     </context>
  181.  
  182.     <context id="datetime-functions" style-ref="function">
  183.       <keyword>ADD_MONTHS</keyword>
  184.       <keyword>CURRENT_(DATE|TIMESTAMP)</keyword>
  185.       <keyword>DBTIMEZONE</keyword>
  186.       <keyword>EXTRACT</keyword>
  187.       <keyword>FROM_TZ</keyword>
  188.       <keyword>(LAST|NEXT)_DAY</keyword>
  189.       <keyword>LOCALTIMESTAMP</keyword>
  190.       <keyword>MONTHS_BETWEEN</keyword>
  191.       <keyword>NEW_TIME</keyword>
  192.       <keyword>NUMTO(DS|YM)INTERVAL</keyword>
  193.       <keyword>ROUND</keyword>
  194.       <keyword>SESSIONTIMEZONE</keyword>
  195.       <keyword>SYS_EXTRACT_UTC</keyword>
  196.       <keyword>SYS(DATE|TIMESTAMP)</keyword>
  197.       <keyword>TO_CHAR</keyword>
  198.       <keyword>TO_(DS|YM)INTERVAL</keyword>
  199.       <keyword>TO_TIMESTAMP(_TZ)?</keyword>
  200.       <keyword>TRUNC</keyword>
  201.       <keyword>TZ_OFFSET</keyword>
  202.     </context>
  203.  
  204.     <context id="general-comparison-functions" style-ref="function">
  205.       <keyword>GREATEST</keyword>
  206.       <keyword>LEAST</keyword>
  207.     </context>
  208.  
  209.     <context id="conversion-functions" style-ref="function">
  210.       <keyword>ASCIISTR</keyword>
  211.       <keyword>BIN_TO_NUM</keyword>
  212.       <keyword>CAST</keyword>
  213.       <keyword>CHARTOROWID</keyword>
  214.       <keyword>(DE)?COMPOSE</keyword>
  215.       <keyword>CONVERT</keyword>
  216.       <keyword>HEXTORAW</keyword>
  217.       <keyword>NUMTO(DS|YM)INTERVAL</keyword>
  218.       <keyword>RAWTON?HEX</keyword>
  219.       <keyword>ROWIDTON?CHAR</keyword>
  220.       <keyword>SCN_TO_TIMESTAMP</keyword>
  221.       <keyword>TIMESTAMP_TO_SCN</keyword>
  222.       <keyword>TO_BINARY_(DOUBLE|FLOAT)</keyword>
  223.       <keyword>TO_N?(CHAR|CLOB)</keyword>
  224.       <keyword>TO_DATE</keyword>
  225.       <keyword>TO_(DS|YM)INTERVAL</keyword>
  226.       <keyword>TO_LOB</keyword>
  227.       <keyword>TO_(MULTI|SINGLE)_BYTE</keyword>
  228.       <keyword>TO_NUMBER</keyword>
  229.       <keyword>TRANSLATE</keyword>
  230.       <keyword>UNISTR</keyword>
  231.     </context>
  232.  
  233.     <context id="large-object-functions" style-ref="function">
  234.       <keyword>BFILENAME</keyword>
  235.       <keyword>EMPTY_(B|C)LOB</keyword>
  236.     </context>
  237.  
  238.     <context id="collection-functions" style-ref="function">
  239.       <keyword>CARDINALITY</keyword>
  240.       <keyword>COLLECT</keyword>
  241.       <keyword>POWERMULTISET(_BY_CARDINALITY)?</keyword>
  242.     </context>
  243.  
  244.     <context id="hierarchical-function" style-ref="function">
  245.       <keyword>SYS_CONNECT_BY_PATH</keyword>
  246.     </context>
  247.  
  248.     <context id="data-mining-functions" style-ref="function">
  249.       <keyword>CLUSTER_(ID|PROBABILITY|SET)</keyword>
  250.       <keyword>FEATURE_(ID|SET|VALUE)</keyword>
  251.       <keyword>PREDICTION</keyword>
  252.       <keyword>PREDICTION_(COST|DETAILS|PROBABILITY|SET)</keyword>
  253.     </context>
  254.  
  255.     <context id="xml-functions" style-ref="function">
  256.       <keyword>(APPEND|INSERT)CHILDXML</keyword>
  257.       <keyword>(DELETE|UPDATE)XML</keyword>
  258.       <keyword>DEPTH</keyword>
  259.       <keyword>EXISTSNODE</keyword>
  260.       <keyword>EXTRACT(VALUE)?</keyword>
  261.       <keyword>INSERTXMLBEFORE</keyword>
  262.       <keyword>PATH</keyword>
  263.       <keyword>SYS_DBURIGEN</keyword>
  264.       <keyword>SYS_XML(AGG|GEN)</keyword>
  265.       <keyword>XML(AGG|CDATA|COLATTVAL|COMMENT|CONCAT|ELEMENT|FOREST|PARSE|PI|QUERY|ROOT|SEQUENCE|SERIALIZE|TABLE|TRANSFORM)</keyword>
  266.     </context>
  267.  
  268.     <context id="encoding-and-decoding-functions" style-ref="function">
  269.       <keyword>DECODE</keyword>
  270.       <keyword>DUMP</keyword>
  271.       <keyword>ORA_HASH</keyword>
  272.       <keyword>VSIZE</keyword>
  273.     </context>
  274.  
  275.     <context id="null-related-functions" style-ref="function">
  276.       <keyword>COALESCE</keyword>
  277.       <keyword>LNNVL</keyword>
  278.       <keyword>NULLIF</keyword>
  279.       <keyword>NVL2?</keyword>
  280.     </context>
  281.  
  282.     <context id="environment-and-identifier-functions" style-ref="function">
  283.       <keyword>SYS_CONTEXT</keyword>
  284.       <keyword>SYS_GUID</keyword>
  285.       <keyword>SYS_TYPEID</keyword>
  286.       <keyword>UID</keyword>
  287.       <keyword>USER</keyword>
  288.       <keyword>USERENV</keyword>
  289.     </context>
  290.  
  291.     <context id="aggregate-functions" style-ref="function">
  292.       <keyword>AVG</keyword>
  293.       <keyword>CORR(_(S|K))?</keyword>
  294.       <keyword>COUNT</keyword>
  295.       <keyword>COVAR_(POP|SAMP)</keyword>
  296.       <keyword>CUME_DIST</keyword>
  297.       <keyword>(DENSE|PERCENT)_RANK</keyword>
  298.       <keyword>FIRST|LAST</keyword>
  299.       <keyword>GROUP_ID</keyword>
  300.       <keyword>GROUPING(_ID)?</keyword>
  301.       <keyword>MAX|MIN</keyword>
  302.       <keyword>MEDIAN</keyword>
  303.       <keyword>PERCENTILE_(CONT|DISC)</keyword>
  304.       <keyword>RANK</keyword>
  305.       <keyword>REGR_(SLOPE|INTERCEPT|COUNT|R2|AVGX|AVGY|SXX|SYY|SXY)</keyword>
  306.       <keyword>STATS_((BINOMIAL|F|KS|MW|WSR)_TEST|CROSSTAB|MODE|ONE_WAY_ANOVA|T_TEST_(ONE|PAIRED|INDEPU?))</keyword>
  307.       <keyword>STDDEV|VARIANCE</keyword>
  308.       <keyword>(STDDEV|VAR)_(POP|SAMP)</keyword>
  309.       <keyword>SUM</keyword>
  310.     </context>
  311.  
  312.     <context id="analytic-functions" style-ref="function">
  313.       <keyword>AVG</keyword>
  314.       <keyword>CORR</keyword>
  315.       <keyword>COVAR_(POP|SAMP)</keyword>
  316.       <keyword>COUNT</keyword>
  317.       <keyword>CUME_DIST</keyword>
  318.       <keyword>(DENSE|PERCENT)_RANK</keyword>
  319.       <keyword>(FIRST|LAST)(_VALUE)?</keyword>
  320.       <keyword>LAG</keyword>
  321.       <keyword>LEAD</keyword>
  322.       <keyword>MAX|MIN</keyword>
  323.       <keyword>NTILE</keyword>
  324.       <keyword>PERCENTILE_(CONT|DISC)</keyword>
  325.       <keyword>RANK</keyword>
  326.       <keyword>RATIO_TO_REPORT</keyword>
  327.       <keyword>REGR_(SLOPE|INTERCEPT|COUNT|R2|AVGX|AVGY|SXX|SYY|SXY)</keyword>
  328.       <keyword>ROW_NUMBER</keyword>
  329.       <keyword>STDDEV|VARIANCE</keyword>
  330.       <keyword>(STDDEV|VAR)_(POP|SAMP)</keyword>
  331.       <keyword>SUM</keyword>
  332.     </context>
  333.  
  334.     <context id="object-reference-functions" style-ref="function">
  335.       <keyword>DEREF</keyword>
  336.       <keyword>MAKE_REF</keyword>
  337.       <keyword>REF</keyword>
  338.       <keyword>REFTOHEX</keyword>
  339.       <keyword>VALUE</keyword>
  340.     </context>
  341.  
  342.     <context id="model-functions" style-ref="function">
  343.       <keyword>CV</keyword>
  344.       <keyword>ITERATION_NUMBER</keyword>
  345.       <keyword>PRESENT(NN)?V</keyword>
  346.       <keyword>PREVIOUS</keyword>
  347.     </context>
  348.  
  349.     <context id="ansi-reserved-words" style-ref="keyword">
  350.       <keyword>ADD</keyword>
  351.       <keyword>ALL</keyword>
  352.       <keyword>ALTER</keyword>
  353.       <keyword>AND</keyword>
  354.       <keyword>ANY</keyword>
  355.       <keyword>AS</keyword>
  356.       <keyword>ASC</keyword>
  357.       <keyword>BETWEEN</keyword>
  358.       <keyword>BY</keyword>
  359.       <keyword>CASE</keyword>
  360.       <keyword>CHECK</keyword>
  361.       <keyword>CREATE</keyword>
  362.       <keyword>CROSS</keyword>
  363.       <keyword>CURRENT</keyword>
  364.       <keyword>DECIMAL</keyword>
  365.       <keyword>DEFAULT</keyword>
  366.       <keyword>DELETE</keyword>
  367.       <keyword>DISTINCT</keyword>
  368.       <keyword>DROP</keyword>
  369.       <keyword>ELSE</keyword>
  370.       <keyword>END</keyword>
  371.       <keyword>FLOAT</keyword>
  372.       <keyword>FOR</keyword>
  373.       <keyword>FROM</keyword>
  374.       <keyword>FULL</keyword>
  375.       <keyword>GRANT</keyword>
  376.       <keyword>GROUP</keyword>
  377.       <keyword>HAVING</keyword>
  378.       <keyword>IMMEDIATE</keyword>
  379.       <keyword>INNER</keyword>
  380.       <keyword>INSERT</keyword>
  381.       <keyword>INTEGER</keyword>
  382.       <keyword>INTERSECT</keyword>
  383.       <keyword>INTO</keyword>
  384.       <keyword>IN</keyword>
  385.       <keyword>IS</keyword>
  386.       <keyword>JOIN</keyword>
  387.       <keyword>LEFT</keyword>
  388.       <keyword>LEVEL</keyword>
  389.       <keyword>LIKE</keyword>
  390.       <keyword>NATURAL</keyword>
  391.       <keyword>NOT</keyword>
  392.       <keyword>OF</keyword>
  393.       <keyword>ON</keyword>
  394.       <keyword>OPTION</keyword>
  395.       <keyword>ORDER</keyword>
  396.       <keyword>OR</keyword>
  397.       <keyword>OUTER</keyword>
  398.       <keyword>PRIOR</keyword>
  399.       <keyword>PRIVILEGES</keyword>
  400.       <keyword>PUBLIC</keyword>
  401.       <keyword>REVOKE</keyword>
  402.       <keyword>RIGHT</keyword>
  403.       <keyword>ROWS</keyword>
  404.       <keyword>SELECT</keyword>
  405.       <keyword>SESSION</keyword>
  406.       <keyword>SET</keyword>
  407.       <keyword>SIZE</keyword>
  408.       <keyword>SMALLINT</keyword>
  409.       <keyword>TABLE</keyword>
  410.       <keyword>THEN</keyword>
  411.       <keyword>TO</keyword>
  412.       <keyword>UNION</keyword>
  413.       <keyword>UNIQUE</keyword>
  414.       <keyword>UPDATE</keyword>
  415.       <keyword>USING</keyword>
  416.       <keyword>VALUES</keyword>
  417.       <keyword>VIEW</keyword>
  418.       <keyword>WHEN</keyword>
  419.       <keyword>WITH</keyword>
  420.     </context>
  421.  
  422.     <context id="oracle-reserved-words" style-ref="keyword">
  423.       <keyword>ACCESS</keyword>
  424.       <keyword>AUDIT</keyword>
  425.       <keyword>CLUSTER</keyword>
  426.       <keyword>COMMENT</keyword>
  427.       <keyword>COMPRESS</keyword>
  428.       <keyword>CONNECT[ \t]+BY</keyword>
  429.       <keyword>CUBE</keyword>
  430.       <keyword>EXCLUSIVE</keyword>
  431.       <keyword>EXISTS</keyword>
  432.       <keyword>FILE</keyword>
  433.       <keyword>GROUPING[ \t]+SETS</keyword>
  434.       <keyword>IDENTIFIED</keyword>
  435.       <keyword>INCREMENT</keyword>
  436.       <keyword>INDEX</keyword>
  437.       <keyword>INITIAL</keyword>
  438.       <keyword>LOCK</keyword>
  439.       <keyword>MAXEXTENTS</keyword>
  440.       <keyword>MINUS</keyword>
  441.       <keyword>MLSLABEL</keyword>
  442.       <keyword>MODE</keyword>
  443.       <keyword>MODIFY</keyword>
  444.       <keyword>NOAUDIT</keyword>
  445.       <keyword>NOCOMPRESS</keyword>
  446.       <keyword>NOCYCLE</keyword>
  447.       <keyword>NOWAIT</keyword>
  448.       <keyword>OFFLINE</keyword>
  449.       <keyword>ONLINE</keyword>
  450.       <keyword>PCTFREE</keyword>
  451.       <keyword>RENAME</keyword>
  452.       <keyword>RESOURCE</keyword>
  453.       <keyword>ROLLUP</keyword>
  454.       <keyword>ROW</keyword>
  455.       <keyword>ROWNUM</keyword>
  456.       <keyword>SHARE</keyword>
  457.       <keyword>SIBLINGS</keyword>
  458.       <keyword>START[ \t]+WITH</keyword>
  459.       <keyword>SUCCESSFUL</keyword>
  460.       <keyword>SYNONYM</keyword>
  461.       <keyword>TRIGGER</keyword>
  462.       <keyword>VALIDATE</keyword>
  463.       <keyword>WHERE</keyword>
  464.     </context>
  465.  
  466.     <context id="sql-statements" style-ref="keyword">
  467.       <prefix>^[ \t]*</prefix>
  468.       <keyword>ALTER[ \t]+(CLUSTER|DATABASE|DIMENSION|DISKGROUP|FUNCTION|INDEX(TYPE)?|JAVA|MATERIALIZED[ \t]+VIEW([ \t]+LOG)?|OPERATOR|OUTLINE|PACKAGE|PROCEDURE|PROFILE|RESOURCE[ \t]+COST|ROLE|ROLLBACK[ \t]+SEGMENT|SEQUENCE|SESSION|SYSTEM|TABLE(SPACE)?|TRIGGER|TYPE|USER|VIEW)</keyword>
  469.       <keyword>ANALYZE</keyword>
  470.       <keyword>(DIS)?ASSOCIATE[ \t]+STATISTICS</keyword>
  471.       <keyword>CALL</keyword>
  472.       <keyword>COMMIT([ \t]+WORK)?</keyword>
  473.       <keyword>CREATE[ \t]+(CLUSTER|CONTEXT|CONTROLFILE|DATABASE([ \t]+LINK)?|DIMENSION|DIRECTORY|DISKGROUP|FUNCTION|INDEX(TYPE)?|JAVA|LIBRARY|MATERIALIZED[ \t]+VIEW([ \t]+LOG)?|OPERATOR|OUTLINE|PACKAGE([ \t]+BODY)?|S?PFILE|PROCEDURE|PROFILE|RESTORE[ \t]+POINT|ROLE|ROLLBACK[ \t]+SEGMENT|SCHEMA|SEQUENCE|SYNONYM|TABLE(SPACE)?|TRIGGER|TYPE([ \t]+BODY)?|USER|VIEW)</keyword>
  474.       <keyword>DROP[ \t]+(CLUSTER|CONTEXT|DATABASE([ \t]+LINK)?|DIMENSION|DIRECTORY|DISKGROUP|FUNCTION|INDEX(TYPE)?|JAVA|LIBRARY|MATERIALIZED[ \t]+VIEW([ \t]+LOG)?|OPERATOR|OUTLINE|PACKAGE|PROCEDURE|PROFILE|RESTORE[ \t]+POINT|ROLE|ROLLBACK[ \t]+SEGMENT|SEQUENCE|SYNONYM|TABLE(SPACE)?|TRIGGER|TYPE([ \t]+BODY)?|USER|VIEW)</keyword>
  475.       <keyword>EXPLAIN[ \t]+PLAN</keyword>
  476.       <keyword>FLASHBACK[ \t]+(DATABASE|TABLE)</keyword>
  477.       <keyword>LOCK[ \t]+TABLE</keyword>
  478.       <keyword>MERGE</keyword>
  479.       <keyword>PURGE</keyword>
  480.       <keyword>ROLLBACK</keyword>
  481.       <keyword>SAVEPOINT</keyword>
  482.       <keyword>SET[ \t]+CONSTRAINTS?</keyword>
  483.       <keyword>SET[ \t]+ROLE</keyword>
  484.       <keyword>SET[ \t]+TRANSACTION</keyword>
  485.       <keyword>TRUNCATE</keyword>
  486.     </context>
  487.  
  488.     <context id="operators" style-ref="keyword">
  489.       <keyword>CONNECT_BY_ROOT</keyword>
  490.       <keyword>MULTISET[ \t]+(EXCEPT|INTERSECT|UNION)</keyword>
  491.     </context>
  492.  
  493.     <context id="conditions" style-ref="keyword">
  494.       <keyword>SOME</keyword>
  495.       <keyword>IS[ \t]+(NOT[ \t]+)?(NAN|INFINITE)</keyword>
  496.       <keyword>IS[ \t]+(NOT[ \t]+)?NULL</keyword>
  497.       <keyword>(EQUALS|UNDER)_PATH</keyword>
  498.       <keyword>(NOT[ \t]+)?IN</keyword>
  499.       <keyword>IS[ \t]+(NOT[ \t]+)?A[ \t]+SET</keyword>
  500.       <keyword>IS[ \t]+(NOT[ \t]+)?EMPTY</keyword>
  501.       <keyword>IS[ \t]+(NOT[ \t]+)?OF([ \t]+TYPE)?</keyword>
  502.       <keyword>IS[ \t]+PRESENT</keyword>
  503.       <keyword>(NOT[ \t]+)?LIKE(C|2|4)?</keyword>
  504.       <keyword>(NOT[ \t]+)?MEMBER([ \t]+OF)?</keyword>
  505.       <keyword>REGEXP_LIKE</keyword>
  506.       <keyword>(NOT[ \t]+)?SUBMULTISET([ \t]+OF)?</keyword>
  507.     </context>
  508.  
  509.     <context id="sql-plus-at-sign" style-ref="some-thing">
  510.       <match>^[ \t]*@</match>
  511.     </context>
  512.  
  513.     <context id="sql-plus-double-at-sign" style-ref="some-thing">
  514.       <match>^[ \t]*@@</match>
  515.     </context>
  516.  
  517.     <context id="sql-plus-slash" style-ref="some-thing">
  518.       <match>^[ \t]*/</match>
  519.     </context>
  520.  
  521.     <context id="sql-plus-commands" style-ref="some-thing">
  522.       <prefix>^[ \t]*</prefix>
  523.       <keyword>ACC(EPT)?</keyword>
  524.       <keyword>A(PPEND)?</keyword>
  525.       <keyword>ARCHIVE[ \t]LOG</keyword>
  526.       <keyword>ATTRIBUTE</keyword>
  527.       <keyword>BRE(AK)?</keyword>
  528.       <keyword>BTI(TLE)?</keyword>
  529.       <keyword>C(HANGE)?</keyword>
  530.       <keyword>CL(EAR)?</keyword>
  531.       <keyword>COL(UMN)?</keyword>
  532.       <keyword>COMP(UTE)?</keyword>
  533.       <keyword>CONN(ECT)?</keyword>
  534.       <keyword>COPY</keyword>
  535.       <keyword>DEF(INE)?</keyword>
  536.       <keyword>DEL</keyword>
  537.       <keyword>DESC(RIBE)?</keyword>
  538.       <keyword>DISC(ONNECT)?</keyword>
  539.       <keyword>ED(IT)?</keyword>
  540.       <keyword>EXEC(UTE)?</keyword>
  541.       <keyword>EXIT|QUIT</keyword>
  542.       <keyword>GET</keyword>
  543.       <keyword>HELP</keyword>
  544.       <keyword>HO(ST)?</keyword>
  545.       <keyword>I(NPUT)?</keyword>
  546.       <keyword>L(IST)?</keyword>
  547.       <keyword>PASSW(ORD)?</keyword>
  548.       <keyword>PAU(SE)?</keyword>
  549.       <keyword>PRI(NT)?</keyword>
  550.       <keyword>PRO(MPT)?</keyword>
  551.       <keyword>RECOVER</keyword>
  552.       <keyword>REM(ARK)?</keyword>
  553.       <keyword>REPF(OOTER)?</keyword>
  554.       <keyword>REPH(EADER)?</keyword>
  555.       <keyword>R(UN)?</keyword>
  556.       <keyword>SAV(E)?</keyword>
  557.       <keyword>SET[ \t]+(APPI(NFO)?|ARRAY(SIZE)?|AUTO(COMMIT)?|AUTOP(RINT)?|AUTORECOVERY|AUTOT(RACE)?|BLO(CKTERMINATOR)?|CMDS(EP)?|COLSEP|COM(PATIBILITY)?|CON(CAT)?|COPYC(OMMIT)?|COPYTYPECHECK|DEF(INE)?|DESCRIBE|ECHO|EDITF(ILE)?|EMB(EDDED)?|ESC(APE)?|FEED(BACK)?|FLAGGER|FLU(SH)?|HEA(DING)?|HEADS(EP)?|INSTANCE|LIN(ESIZE)?|LOBOF(FSET)?|LOGSOURCE|LONG|LONGC(HUNKSIZE)?|MARK(UP)?|NEWP(AGE)?|NULL|NUMF(ORMAT)?|NUM(WIDTH)?|PAGES(IZE)?|PAU(SE)?|RECSEP|RECSEPCHAR|SERVEROUT(PUT)?|SHIFT(INOUT)?|SHOW(MODE)?|SQLBL(ANKLINES)?|SQLC(ASE)?|SQLCO(NTINUE)?|SQLN(UMBER)?|SQLPLUSCOMPAT(IBILITY)?|SQLPRE(FIX)?|SQLP(ROMPT)?|SQLT(ERMINATOR)?|SUF(FIX)?|TAB|TERM(OUT)?|TI(ME)?|TIMI(NG)?|TRIM(OUT)?|TRIMS(POOL)?|UND(ERLINE)?|VER(IFY)?|WRA(P)?)</keyword>
  558.       <keyword>SHO(W)?</keyword>
  559.       <keyword>SHUTDOWN</keyword>
  560.       <keyword>SPO(OL)?</keyword>
  561.       <keyword>STA(RT)?</keyword>
  562.       <keyword>STARTUP</keyword>
  563.       <keyword>STORE</keyword>
  564.       <keyword>TIMI(NG)?</keyword>
  565.       <keyword>TTI(TLE)?</keyword>
  566.       <keyword>UNDEF(INE)?</keyword>
  567.       <keyword>VAR(IABLE)?</keyword>
  568.       <keyword>WHENEVER[ \t]+(OS|SQL)ERROR</keyword>
  569.     </context>
  570.  
  571.     <context id="sql">
  572.       <include>
  573.         <context ref="oracle-built-in-datatypes"/>
  574.         <context ref="ansi-datatypes"/>
  575.         <context ref="sql-ds-and-db2-datatypes"/>
  576.         <context ref="oracle-supplied-types"/>
  577.         <context ref="text-literals"/>
  578.         <context ref="integer-literals"/>
  579.         <context ref="number-literals"/>
  580.         <context ref="size-clause"/>
  581.         <context ref="unlimited"/>
  582.         <context ref="null"/>
  583.         <context ref="block-comment"/>
  584.         <context ref="line-comment"/>
  585.         <context ref="numeric-functions"/>
  586.         <context ref="character-functions-returning-character-values"/>
  587.         <context ref="nls-character-functions"/>
  588.         <context ref="character-functions-returning-number-values"/>
  589.         <context ref="datetime-functions"/>
  590.         <context ref="general-comparison-functions"/>
  591.         <context ref="conversion-functions"/>
  592.         <context ref="large-object-functions"/>
  593.         <context ref="collection-functions"/>
  594.         <context ref="hierarchical-function"/>
  595.         <context ref="data-mining-functions"/>
  596.         <context ref="xml-functions"/>
  597.         <context ref="encoding-and-decoding-functions"/>
  598.         <context ref="null-related-functions"/>
  599.         <context ref="environment-and-identifier-functions"/>
  600.         <context ref="aggregate-functions"/>
  601.         <context ref="analytic-functions"/>
  602.         <context ref="object-reference-functions"/>
  603.         <context ref="model-functions"/>
  604.         <context ref="ansi-reserved-words"/>
  605.         <context ref="oracle-reserved-words"/>
  606.         <context ref="sql-statements"/>
  607.         <context ref="operators"/>
  608.         <context ref="conditions"/>
  609.         <context ref="sql-plus-at-sign"/>
  610.         <context ref="sql-plus-double-at-sign"/>
  611.         <context ref="sql-plus-slash"/>
  612.         <context ref="sql-plus-commands"/>
  613.       </include>
  614.     </context>
  615.  
  616.   </definitions>
  617. </language>
  618.